<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>private私有属性使用</title>
</head>
<body>
    <script>
        // public 在内部，子类，外部都可以访问
        // protected 在内部和子类可以访问，在外部不可以访问
        // private 在内部可以访问，在子类和外部不可以访问

        // 私有方法
        class Request{
            // 私有属性
            #host = "https://jksajf.com";
            constructor(name){
                this.name = name;
                this.#check(name);
            }

            set host(url){
                if(!/^https?:\/\//i.test(url)){
                    throw new Error("地址格式错误！");
                }
                this.#host = url;
            }

            get host(){
                return this.#host;
            }

            // 私有方法
            #check(){
                if(this.name.length < 5){
                    throw new Error("长度小于5个字符");
                }
                return true;
            }
        }

        let request = new Request("https://klafsdfk.com");
        request.host = "https://klfgak.com";
        // request.#host = "https://klfgak.com";    //会报错，它是个私有属性
        // request.#check();    //会报错，它是个私有方法
        console.log(request.host);
    </script>
</body>
</html>